- page_title "Account"
- @content_class = "limit-container-width" unless fluid_layout
= render 'profiles/head'

- if current_user.ldap_user?
  .alert.alert-info
    Some options are unavailable for LDAP accounts

.row.prepend-top-default
  .col-lg-4.profile-settings-sidebar
    %h4.prepend-top-0
      Private Tokens
    %p
      Keep these tokens secret, anyone with access to them can interact with
      GitLab as if they were you.
  .col-lg-8.private-tokens-reset
    = render partial: 'reset_token', locals: { label: 'Private token', button_label: 'Reset private token', help_text: 'Your private token is used to access the API and Atom feeds without username/password authentication.' }

    = render partial: 'reset_token', locals: { label: 'RSS token', button_label: 'Reset RSS token', help_text: 'Your RSS token is used to create urls for personalized RSS feeds.' }

    - if incoming_email_token_enabled?
      = render partial: 'reset_token', locals: { label: 'Incoming email token', button_label: 'Reset incoming email token', help_text: 'Your incoming email token is used to create new issues by email, and is included in your project-specific email addresses.' }

%hr
.row.prepend-top-default
  .col-lg-4.profile-settings-sidebar
    %h4.prepend-top-0
      Two-Factor Authentication
    %p
      Increase your account's security by enabling Two-Factor Authentication (2FA).
  .col-lg-8
    %p
      Status: #{current_user.two_factor_enabled? ? 'Enabled' : 'Disabled'}
    - if current_user.two_factor_enabled?
      = link_to 'Manage two-factor authentication', profile_two_factor_auth_path, class: 'btn btn-info'
      = link_to 'Disable', profile_two_factor_auth_path,
                method: :delete,
                data: { confirm: "Are you sure? This will invalidate your registered applications and U2F devices." },
                class: 'btn btn-danger'
    - else
      .append-bottom-10
        = link_to 'Enable two-factor authentication', profile_two_factor_auth_path, class: 'btn btn-success'

%hr
- if button_based_providers.any?
  .row.prepend-top-default
    .col-lg-4.profile-settings-sidebar
      %h4.prepend-top-0
        Social sign-in
      %p
        Activate signin with one of the following services
    .col-lg-8
      %label.label-light
        Connected Accounts
      %p Click on icon to activate signin with one of the following services
      - button_based_providers.each do |provider|
        .provider-btn-group
          .provider-btn-image
            = provider_image_tag(provider)
          - if auth_active?(provider)
            - if unlink_allowed?(provider)
              = link_to unlink_profile_account_path(provider: provider), method: :delete, class: 'provider-btn' do
                Disconnect
            - else
              %a.provider-btn
                Active
          - else
            = link_to omniauth_authorize_path(:user, provider), method: :post, class: 'provider-btn not-active' do
              Connect
  %hr
- if current_user.can_change_username?
  .row.prepend-top-default
    .col-lg-4.profile-settings-sidebar
      %h4.prepend-top-0.warning-title
        Change username
      %p
        Changing your username will change path to all personal projects!
    .col-lg-8
      = form_for @user, url: update_username_profile_path, method: :put, html: {class: "update-username"} do |f|
        .form-group
          = f.label :username, "Path", class: "label-light"
          .input-group
            .input-group-addon
              = root_url
            = f.text_field :username, required: true, class: 'form-control'
        .help-block
          Current path:
          #{root_url}#{current_user.username}
        .prepend-top-default
          = f.button class: "btn btn-warning", type: "submit" do
            = icon "spinner spin", class: "hidden loading-username"
            Update username
  %hr

- if signup_enabled?
  .row.prepend-top-default
    .col-lg-4.profile-settings-sidebar
      %h4.prepend-top-0.danger-title
        Remove account
    .col-lg-8
      - if @user.can_be_removed? && can?(current_user, :destroy_user, @user)
        %p
          Deleting an account has the following effects:
        = render 'users/deletion_guidance', user: current_user
        = link_to 'Delete account', user_registration_path, data: { confirm: "REMOVE #{current_user.name}? Are you sure?" }, method: :delete, class: "btn btn-remove"
      - else
        - if @user.solo_owned_groups.present?
          %p
            Your account is currently an owner in these groups:
            %strong= @user.solo_owned_groups.map(&:name).join(', ')
          %p
            You must transfer ownership or delete these groups before you can delete your account.
        - else
          %p
            You don't have access to delete this user.
.append-bottom-default
